package com.wangqingbo.myspringbootproject.service;

import com.wangqingbo.myspringbootproject.entity.ProjectInfo;
import org.apache.ibatis.annotations.Param;
import org.springframework.web.multipart.MultipartFile;

import java.util.List;
import java.util.Map;

/**
 * 项目操作的业务接口
 */
public interface ProjectInfoService {

    /**
     * 保存项目信息
     * @param prj 项目的实体类
     * @return 保存成功的项目数量
     */
    public int saveProjectInfo(ProjectInfo prj);

    /**
     * 根据ID查询项目信息
     * @param projectId 项目id
     * @return 项目对象
     */
    public ProjectInfo getProjectInfoById(String projectId);

    /**
     * 修改项目信息
     * @param prj 项目对象
     * @return 修改成功的数据条数
     */
    public int updateProjectInfo(ProjectInfo prj);

    /**
     * 根据id删除项目
     * @param projectId 项目id
     * @return 删除的数据条数
     */
    public int delProjectInfoById(String projectId);

    /**
     * 查询所有的项目
     * @return 项目列表
     */
    public List<ProjectInfo> getAllProjectInfo();

    /**
     * 根据参数查询项目信息，并且要分页
     * @param projectName 项目名称
     * @param projectCode 项目编码
     * @param currentPage 当前页，用于分页
     * @param pageSize 每页显示的数据条数，用于分页
     * @return 项目信息，包含列表和分页
     */
    public Map<String,Object> getProjectInfoByParamsPage(String projectName, String projectCode, int currentPage, int pageSize);

    /**
     * 保存附件信息
     * @param projectId 项目id
     * @param myFile 附件实体
     * @return 成功的数据
     */
    public int saveFile(String projectId, MultipartFile myFile);

}
